//      preferences.h
//
//      Copyright 2011 David Vachulka <david@konstrukce-cad.com>
//
//      This program is free software; you can redistribute it and/or modify
//      it under the terms of the GNU General Public License as published by
//      the Free Software Foundation; either version 3 of the License, or
//      (at your option) any later version.
//
//      This program is distributed in the hope that it will be useful,
//      but WITHOUT ANY WARRANTY; without even the implied warranty of
//      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//      GNU General Public License for more details.
//
//      You should have received a copy of the GNU General Public License
//      along with this program; if not, write to the Free Software
//      Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
//      MA 02110-1301, USA.


#ifndef PREFERENCES_H
#define PREFERENCES_H

class Preferences
{
public:
    Preferences();
    Preferences(const Preferences &p);

    //Save to FXSettings
    void save();
    //Load from FXSettings
    void load();

    //General settings pane in Configdialog
    FXbool m_oneInstance;
    FXbool m_disableSortTabs;
    FXbool m_reconnect;
    FXint m_numberAttempt;
    FXint m_delayAttempt;
    FXint m_maxAway;
    FXbool m_useTray;
    FXbool m_closeToTray;
    FXbool m_useSpell;
    FXbool m_ownServerWindow;
    FXbool m_logging;
    FXString m_logPath;
    FXbool m_autoload;
    FXString m_autoloadPath;

    //Look settings pane in Configdialog
    ColorTheme m_appTheme;
    FXColor m_trayColor;
    FXColor m_unreadColor;
    FXColor m_highlightColor;
    FXint m_tabPosition;
    FXString m_font;

    //Irc Text settings pane in Configdialog
    IrcColor m_colors;
    FXString m_ircFont;
    FXString m_nickCompletionChar;
    FXbool m_sameCmd;
    FXbool m_sameList;
    FXbool m_coloredNick;
    FXbool m_stripColors;
    FXbool m_loadLog;
    FXint m_loadLines;

    //NickList settings pane in Configdialog
    FXString m_themePath;
    FXString m_themesList;
    FXbool m_sortUserMode;

    //Ignore settings pane in Configdialog
    FXString m_ignoreCommandsList;
    dxUserInfoArray m_ignoreUsersList;

    //DCC settings pane in Configdialog
    FXString m_dccPath;
    FXString m_dccIP;
    FXint m_dccPortD;
    FXint m_dccPortH;
    FXint m_dccTimeout;
    FXbool m_autoDccChat;
    FXbool m_autoDccFile;

    //Notification settings pane in Configdialog
    dxUserInfoArray m_friendsList;
    FXbool m_sounds;
    FXbool m_soundConnect;
    FXString m_pathConnect;
    FXbool m_soundDisconnect;
    FXString m_pathDisconnect;
    FXbool m_soundMessage;
    FXString m_pathMessage;
    FXbool m_notify;
    FXint m_notifyPosition;
    FXbool m_notifyConnect;
    FXbool m_notifyDisconnect;
    FXbool m_notifyMessage;

    //Smileys settings pane in Configdialog
    FXbool m_useSmileys;
    dxStringMap m_smileysMap;

    //Other settings value
    dxServerInfoArray m_serverList;
    FXbool m_usersShown;
    FXbool m_statusShown;
    FXint m_x;
    FXint m_y;
    FXint m_w;
    FXint m_h;
    FXbool m_maximized;
    FXbool m_showSpellCombo;
    dxStringMap m_langs; //map between channel and spelllang
};

#endif /* PREFERENCES_H */
